package br.com.leopard.erp.gym.dao.empresa;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.Query;

import br.com.leopard.erp.gym.exception.NenhumResultadoEncontradoException;
import br.com.leopard.erp.gym.mapeamento.base_sistema.Modulo;
import br.com.leopard.erp.gym.mapeamento.empresa.Empresa;
import br.com.leopard.erp.gym.mapeamento.empresa.EmpresaModulo;
import br.com.leopard.erp.gym.persistence.AbstractDAO;
import br.com.leopard.erp.gym.persistence.ParametroQueryBuilder;

@Stateless
@LocalBean
public class EmpresaModuloDAO extends AbstractDAO<EmpresaModulo, Long> {

	public EmpresaModuloDAO() {
		super(EmpresaModulo.class);
	}

	public void inativarModulosDeEmpresa(Empresa empresa) {
		String namedQuery = "EmpresaModulo.inativarTodosModulosDeEmpresa";

		Query query = super.entityManager.createNamedQuery(namedQuery);

		query.setParameter("empresa", empresa);

		query.executeUpdate();
	}

	public EmpresaModulo getByEmpresaEModulo(Empresa empresa, Modulo modulo) throws NenhumResultadoEncontradoException {
		String query = "EmpresaModulo.findByEmpresaEModulo";

		ParametroQueryBuilder builder = new ParametroQueryBuilder();
		builder.addParametro("empresa", empresa);
		builder.addParametro("modulo", modulo);

		return super.getSingleObject(query, builder.getParametros());
	}
}
